home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / c / flash-0.4.3.lha / flash-0.4.3 / Lib / swf.h < prev    next >
C/C++ Source or Header  |  1999-02-21  |  5KB  |  187 lines

  1. #ifndef _SWF_H_
  2. #define _SWF_H_
  3.  
  4. #ifdef DUMP
  5. #include "bitstream.h"
  6. #endif
  7.  
  8. extern int debug;
  9.  
  10. // Global Types
  11. typedef unsigned long U32, *P_U32, **PP_U32;
  12. typedef signed long S32, *P_S32, **PP_S32;
  13. typedef unsigned short U16, *P_U16, **PP_U16;
  14. typedef signed short S16, *P_S16, **PP_S16;
  15. typedef unsigned char U8, *P_U8, **PP_U8;
  16. typedef signed char S8, *P_S8, **PP_S8;
  17. typedef signed long SFIXED, *P_SFIXED;
  18. typedef signed long SCOORD, *P_SCOORD;
  19. typedef unsigned long BOOL;
  20.  
  21. #define ZOOM(v,f) ((v)/(f))
  22.  
  23. #include "matrix.h"
  24. #include "cxform.h"
  25. #include "rect.h"
  26.  
  27. #include <sys/time.h>
  28. #define ST struct timeval t1,t2;
  29. #define START gettimeofday(&t1,0)
  30. #define STOP(msg) gettimeofday(&t2,0); printf("%s Delta = %d ms\n", msg, (t2.tv_sec-t1.tv_sec)*1000+(t2.tv_usec-t1.tv_usec)/1000); fflush(stdout);
  31.  
  32. // Start Sound Flags
  33. enum {
  34.     soundHasInPoint        = 0x01,
  35.     soundHasOutPoint    = 0x02,
  36.     soundHasLoops        = 0x04,
  37.     soundHasEnvelope    = 0x08
  38.  
  39.     // the upper 4 bits are reserved for synchronization flags
  40. };
  41.  
  42. // Flags for Sound Format
  43. enum SounfFlags {
  44.     soundIsStereo        = 0x01,
  45.     soundIs16bit        = 0x02,
  46.     soundIsADPCMCompressed    = 0x10
  47. };
  48.  
  49. // Flags for defining Button States
  50. enum ButtonState {
  51.     stateHitTest = 0x08,
  52.     stateDown    = 0x04,
  53.     stateOver    = 0x02,
  54.     stateUp      = 0x01
  55. };
  56.  
  57. // Actions
  58. enum Action {
  59.         // Internal actions
  60.         ActionRefresh        = 0x00,
  61.         ActionPlaySound        = 0x01,
  62.         // Normal actions
  63.         ActionGotoFrame        = 0x81,
  64.         ActionGetURL        = 0x83,
  65.         ActionNextFrame        = 0x04,
  66.         ActionPrevFrame        = 0x05,
  67.         ActionPlay        = 0x06,
  68.         ActionStop        = 0x07,
  69.         ActionToggleQuality    = 0x08,
  70.         ActionStopSounds    = 0x09,
  71.         ActionWaitForFrame    = 0x8a,
  72.         ActionSetTarget        = 0x8b,
  73.         ActionGoToLabel        = 0x8c
  74. };
  75.  
  76. class Sound;
  77.  
  78. struct ActionRecord {
  79.     Action             action;
  80.  
  81.     // GotoFrame  & WaitForFrame
  82.     long             frameIndex;
  83.  
  84.     // GetURL
  85.     char            *url;
  86.     char            *target;
  87.  
  88.     // GotoLabel
  89.     char            *frameLabel;
  90.  
  91.     // WaitForFrame
  92.     long             skipCount;
  93.  
  94.     // Sound
  95.     Sound            *sound;
  96.  
  97.     struct ActionRecord    *next;
  98. };
  99.  
  100. struct Gradient {
  101.     int         nbGradients;
  102.     unsigned char     ratio[8];
  103.     Color         color[8];
  104.     // For rendering
  105.     Color        *ramp;
  106.     Matrix         imat;
  107.     long         xOffset;
  108.     long         yOffset;
  109. };
  110.  
  111. enum FontFlags {
  112.     fontUnicode   = 0x20,
  113.     fontShiftJIS  = 0x10,
  114.     fontANSI      = 0x08,
  115.     fontItalic    = 0x04,
  116.     fontBold      = 0x02,
  117.     fontWideCodes = 0x01
  118. };
  119.  
  120. enum TextFlags {
  121.     isTextControl = 0x80,
  122.  
  123.     textIsLarge   = 0x70,
  124.     textHasFont   = 0x08,
  125.     textHasColor  = 0x04,
  126.     textHasYOffset= 0x02,
  127.     textHasXOffset= 0x01
  128. };
  129.  
  130. #ifndef NULL
  131. #define NULL 0
  132. #endif
  133.  
  134. // Tag values that represent actions or data in a Flash script.
  135. enum
  136.     stagEnd             = 0,
  137.     stagShowFrame         = 1,
  138.     stagDefineShape        = 2,
  139.     stagFreeCharacter         = 3,
  140.     stagPlaceObject         = 4,
  141.     stagRemoveObject         = 5,
  142.     stagDefineBits         = 6,
  143.     stagDefineButton         = 7,
  144.     stagJPEGTables         = 8,
  145.     stagSetBackgroundColor    = 9,
  146.     stagDefineFont        = 10,
  147.     stagDefineText        = 11,
  148.     stagDoAction        = 12,
  149.     stagDefineFontInfo        = 13,
  150.     stagDefineSound        = 14,    // Event sound tags.
  151.     stagStartSound        = 15,
  152.     stagStopSound        = 16,
  153.     stagDefineButtonSound    = 17,
  154.     stagSoundStreamHead        = 18,
  155.     stagSoundStreamBlock    = 19,
  156.     stagDefineBitsLossless    = 20,    // A bitmap using lossless zlib compression.
  157.     stagDefineBitsJPEG2        = 21,    // A bitmap using an internal JPEG compression table.
  158.     stagDefineShape2        = 22,
  159.     stagDefineButtonCxform    = 23,
  160.     stagProtect            = 24,    // This file should not be importable for editing.
  161.  
  162.     // These are the new tags for Flash 3.
  163.     stagPlaceObject2        = 26,    // The new style place w/ alpha color transform and name.
  164.     stagRemoveObject2        = 28,    // A more compact remove object that omits the character tag (just depth).
  165.     stagDefineShape3        = 32,    // A shape V3 includes alpha values.
  166.     stagDefineText2        = 33,    // A text V2 includes alpha values.
  167.     stagDefineButton2        = 34,    // A button V2 includes color transform, alpha and multiple actions
  168.     stagDefineBitsJPEG3        = 35,    // A JPEG bitmap with alpha info.
  169.     stagDefineBitsLossless2     = 36,    // A lossless bitmap with alpha info.
  170.     stagDefineSprite        = 39,    // Define a sequence of tags that describe the behavior of a sprite.
  171.     stagNameCharacter        = 40,    // Name a character definition, character id and a string, (used for buttons, bitmaps, sprites and sounds).
  172.     stagFrameLabel            = 43,    // A string label for the current frame.
  173.     stagSoundStreamHead2    = 45,    // For lossless streaming sound, should not have needed this...
  174.     stagDefineMorphShape    = 46,    // A morph shape definition
  175.     stagDefineFont2        = 48
  176. };
  177.  
  178. #ifndef false
  179. #define false 0
  180. #endif
  181. #ifndef true
  182. #define true 1
  183. #endif
  184.  
  185. #endif /* _SWF_H_ */
  186.